package com.jmb.apiplatform.service.impl;


import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jmb.apiplatform.common.PageResult;
import com.jmb.apiplatform.exception.ValidException;
import com.jmb.apiplatform.mapper.ModuleMapper;
import com.jmb.apiplatform.pojo.ModuleDao;
import com.jmb.apiplatform.pojo.ModuleVO;
import com.jmb.apiplatform.service.ModuleService;
import com.jmb.apiplatform.util.ValidUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;


@Service
public class ModuleServiceImpl implements ModuleService {
    @Autowired
    private ModuleMapper moduleMapper;

    @Override
    public void saveModule(ModuleDao moduleDao) throws ValidException {
        ValidUtil.notNUll(moduleDao, "模块不能为空");
        ValidUtil.notNUll(moduleDao.getProjectId(), "项目id不能为空");
        ValidUtil.notNUll(moduleDao.getModuleName(), "模块名称不能为空");
        moduleMapper.saveModel(moduleDao);
    }

    @Override
    public PageResult<ModuleDao> listModel(ModuleVO moduleVO) {
        PageHelper.startPage(moduleVO.getPageNum(), moduleVO.getPageSize());
        List<ModuleDao> modes = moduleMapper.ListPage(moduleVO);
        Page<ModuleDao> p = (Page<ModuleDao>) modes;

        return new PageResult<>(p.getTotal(), p.getResult());
    }

    @Override
    public void removeById(Integer id) throws ValidException {
        ValidUtil.notNUll(id, "模块id不能为空");
        int proId = moduleMapper.deleteId(id);
        if (proId <= 0){
            throw new ValidException("数据不存在，请检查重试");
        }
    }

    @Override
    public ModuleDao finModuleId(Integer id) throws ValidException {
        if (id==null){
            throw new ValidException("模块id不能为空");
        }
        ModuleDao moduleDao = moduleMapper.finModuleId(id);
        if (moduleDao ==null){
            throw new ValidException("项目不存在");
        }
        return moduleDao;
    }

    @Override
    public void updateModule(ModuleDao moduleDao) throws ValidException {
        ValidUtil.notNUll(moduleDao, "模块不能为空");
        ValidUtil.notNUll(moduleDao.getModuleId(), "模块id不能为空");
        ValidUtil.notNUll(moduleDao.getModuleName(), "模块名称不能为空");
        moduleDao.setUpdateTime(new Date());

        moduleMapper.updateModel(moduleDao);
    }
}




